Cameras are commonly used to capture an image of a scene. Most scenes are not illuminated by a 100% pure white illuminant. For example, sunlight at midday is much closer to white than the late afternoon or morning sunlight which includes more yellow. The color of light reflected from an object will vary according to the color of the illuminant that is illuminating the scene. As a result thereof, for example, if the illuminant produces light that includes a lot of yellow, a white object in the scene will not be captured as a white object with a typical film type camera. This is commonly referred to as illuminant color casting because the illuminant causes the color casting.
Another type of color casting on the scene is caused by the intrinsic colors in the scene. For example, if the scene only contains green grass, the captured image of the scene will show greenish color casting. In another example, if the scene only contains blue sky, the captured image of the scene will show bluish color casting. This is generally referred to as intrinsic color casting.
Recently, some digital cameras include a program that first estimates the color of the illuminant, and subsequently adjusts all of the colors in an input image according to the color of the illuminant. This is commonly referred to as white balance correction. With white balance correction, the digital camera attempts to compensate for variations in the colors in the input image caused by an off-white illuminant, and the actual color of the objects in the scene are more accurately represented in the provided image.
Unfortunately, existing white balance correction programs have not been able to quickly and accurately estimate the correct illuminant in all situations. For example, many programs have difficulty distinguishing between some daylight illuminants and fluorescent illuminants. Moreover, many programs have difficulty accurately estimating the correct illuminant when the scene has intrinsic color casting. As a result thereof, the color correction is not satisfactory in all situations. Further, some white balance correction programs are extremely complex to implement and are computationally expensive.